1. Field of the Invention
Embodiments of the invention relates generally to methods and systems for emulating e-mode programs on a server having a different architecture and operating system platform.
2. Description of Related Art
The stack architecture of the ClearPath/NX server product line of Unisys Corporation supports the ALGOL programming language and its extensions. Their implementations are based on a specification known as e-mode. In order to run e-mode programs on a native server having a different architecture and operating system platform, such as an Intel processor-based architecture with a Microsoft Windows operating system platform, one approach is to emulate all the e-mode programs. Since all the e-mode programs are emulated, all the data items that are used by the e-mode programs are stored in e-mode data format. This approach does not take full advantage of the speed and characteristics of the native server on which the emulator is running. As a result, performance of the emulator is sub-optimal with this approach.
Another approach is to translate most critical e-mode programs to programs such as C++ programs that can be compiled to run efficiently on the native server, and to emulate only the remaining non-translated e-mode programs. If each data item that is used by both the compiled C++ programs and the emulated e-mode programs has to be stored in both native data format and e-mode format, then, in addition to causing overhead in memory storage, this will cause too much of overhead in keeping the two copies of each common data item in synchronization. If a common data item is kept only in e-mode format, there will be overhead in reformatting the data item to native data format each time a compiled C++ program needs to use the data item. The overall performance would be improved if all the data items that are used by the compiled C++ programs are stored in native data format. However, in this case, the emulator must be able to use common data items that are stored in native data format for the emulated e-mode programs. This is not possible with current emulators that cannot utilize the data items that are stored in native data format for the emulated e-mode programs. Thus, there is a need for a technique that enables an emulator to utilize the data items that are stored in native data format for the emulated e-mode programs.